package primaryAlgorithm.maxSubArray;
/**
 * @Date 2020/03/21
 * @author 王光浩
 * @Thinking 使用滑动窗口法。
 */
public class MyMethodOne {
	 public int maxSubArray(int[] nums) {
		 int max=Integer.MIN_VALUE;  //保存最大值
		 int total=0;           //窗口中总和
		 int count=0;
		 int first=0;
		 int last=0;
		 //获取最大子序列和
		 while(last<nums.length) {
			 if(total<0) {
				 total-=nums[first++];
				 count--;
			 }
			 else {
				 total+=nums[last++];
				 count++;
			 }
			 if(count>0)max=max<total?total:max;
			 last=count>0?last:first;
		 }
		 return max;
	 }
}
